iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
Mobile Development

Android與Spring Boot開發學習之旅系列 第 6

開發學習之旅 Day6 - 完成記帳應用的日曆顯示畫面

  • 分享至 

  • xImage
  •  

記帳應用APP - it_Demo[GitHub]:https://github.com/tsanyi0119/it_demo

https://ithelp.ithome.com.tw/upload/images/20230916/20150372b9wnG6nOoX.png

這個畫面中使用到CalendarView、Calendar、SimpleDateFormat;CalendarView是Android中的一個UI元件,用於讓使用者選擇日期,提供了交互式的日曆界面,使用者可以滾動和選擇日期。Calendar類提供處理日期和時間的計算、格式化和操作。SimpleDateFormat用於格式化日期和時間轉換成特定格式的字符串,或將日期和時間的字符串形式解析為日期對象。

以下是一個簡單的範例:

  • 在XML布局文件中添加CalendarView元件:
<CalendarView
    android:id="@+id/calendarView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_margin="16dp"
/>
  • 在onCreate方法中執行以下代碼:
CalendarView calendarView = findViewById(R.id.calendarView);

        calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
                // 創建一個Calendar對象
                Calendar selectedDate = Calendar.getInstance();
                //設置所選日期
                selectedDate.set(year, month, dayOfMonth);

                // 將日期格式化為所需的格式
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                String formattedDate = sdf.format(selectedDate.getTime());

                // 顯示Toast
                Toast.makeText(MainActivity.this, "您選擇的日期是:" + formattedDate, Toast.LENGTH_SHORT).show();
            }
        });

讓我們一步步解釋程式碼:

calendarView.setOnDateChangeListener()

設置CalendarView的日期變更監聽器。當使用者選擇日期時,將執行以下代碼。

public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth)

監聽器的回調函數,當使用者選擇日期時,回傳代表所選日期的年份、月份和日期。

Calendar selectedDate = Calendar.getInstance();

創建一個Calendar對象,並使用Calendar.getInstance()方法獲取當前日期和時間。

selectedDate.set(year, month, dayOfMonth);

將selectedDate的日期設為使用者所選的日期,日期使用onSelectedDayChange函數中回傳的year、month和dayOfMonth。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

創建一個SimpleDateFormat對象,用於將日期格式化為指定格式的字符串。

String formattedDate = sdf.format(selectedDate.getTime());

使用SimpleDateFormat中的format方法將selectedDate的日期格式轉化為"yyyy-MM-dd"格式的字符串。


上一篇
開發學習之旅 Day5 - 完成記帳應用的資產總計畫面
下一篇
開發學習之旅 Day7 - 完成記帳應用的新增收支紀錄畫面、筆記畫面
系列文
Android與Spring Boot開發學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言